home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / IMPEDNET.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1997-01-28  |  6.2 KB  |  233 lines

  1. 10  'IMPEDNET - Impedance Matching Networks - 21 APR 95 rev. 27 SEP 96
  2. 20  IF EX$=""THEN EX$="EXIT"
  3. 30  CLS:KEY OFF
  4. 40  ON ERROR GOTO 210
  5. 50  COLOR 7,0,1
  6. 60  UL$=STRING$(80,205)
  7. 70  U1$="##,###.###"
  8. 80  U2$="##,###"
  9. 90  U3$="####.#"
  10. 100  PI=3.14159
  11. 110  '
  12. 120  '.....start
  13. 130  CLS
  14. 140  COLOR 15,2
  15. 150  PRINT " IMPEDANCE MATCHING NETWORKS";
  16. 160  PRINT TAB(57);"by George Murphy VE3ERP ";
  17. 170  COLOR 1,0:PRINT STRING$(80,223);
  18. 180  COLOR 7,0
  19. 190  GOTO 970
  20. 200  '
  21. 210  '.....error trap
  22. 220  IF ERR=200 THEN 290
  23. 230  CLS:BEEP
  24. 240  IF ERR=5 OR ERR=11 THEN 260
  25. 250  PRINT " Error";ERR;"in line";ERL:END
  26. 260  COLOR 15,1:LOCATE 12,13
  27. 270  PRINT " You may have entered a parameter that is not possible."
  28. 280  LOCATE 13,13
  29. 290  PRINT "              Press any key to start over.             "
  30. 300  IF INKEY$=""THEN 300
  31. 310  COLOR 7,0:CLS:RESUME 30
  32. 320  '
  33. 330  '.....diagrams
  34. 340  '
  35. 350  COLOR 0,7
  36. 360  LOCATE RO+ 1,CO+ 9:PRINT "                           "
  37. 370  LOCATE RO+ 2,CO+ 9:PRINT "               L1          "
  38. 380  LOCATE RO+ 3,CO+ 9:PRINT "  SOUNDSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDORORORORORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND  "
  39. 390  LOCATE RO+ 4,CO+ 9:PRINT "       CALL                   "
  40. 400  LOCATE RO+ 5,CO+ 9:PRINT " DEFSNGR1  THENINSTRTHEN C1           R2DEFDBL "
  41. 410  LOCATE RO+ 6,CO+ 9:PRINT "       CALL                   "
  42. 420  LOCATE RO+ 7,CO+ 9:PRINT "  SOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND  "
  43. 430  LOCATE RO+ 8,CO+ 9:PRINT "                           "
  44. 440  COLOR 15,2
  45. 450  LOCATE RO+ 9,CO+ 9:PRINT " NETWORK #1, where R1 > R2 "
  46. 460  COLOR 7,0
  47. 470  RETURN
  48. 480  '
  49. 490  COLOR 0,7
  50. 500  LOCATE RO+ 1,CO+45:PRINT "                           "
  51. 510  LOCATE RO+ 2,CO+45:PRINT "        C1                 "
  52. 520  LOCATE RO+ 3,CO+45:PRINT "  SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDUSINGSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND  "
  53. 530  LOCATE RO+ 4,CO+45:PRINT "                CALL          "
  54. 540  LOCATE RO+ 5,CO+45:PRINT " DEFSNGR1        L1 OROROR     R2DEFDBL "
  55. 550  LOCATE RO+ 6,CO+45:PRINT "                CALL          "
  56. 560  LOCATE RO+ 7,CO+45:PRINT "  SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND  "
  57. 570  LOCATE RO+ 8,CO+45:PRINT "                           "
  58. 580  COLOR 15,2
  59. 590  LOCATE RO+ 9,CO+45:PRINT " NETWORK #2, where R1 < R2 "
  60. 600  COLOR 7,0
  61. 610  RETURN
  62. 620  '
  63. 630  COLOR 0,7
  64. 640  LOCATE RO+11,CO+ 9:PRINT "                           "
  65. 650  LOCATE RO+12,CO+ 9:PRINT "             L1            "
  66. 660  LOCATE RO+13,CO+ 9:PRINT "  SOUNDSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDORORORORORSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUND  "
  67. 670  LOCATE RO+14,CO+ 9:PRINT "       CALL           CALL       "
  68. 680  LOCATE RO+15,CO+ 9:PRINT " DEFSNGR1  THENINSTRTHEN C1   C2 THENINSTRTHEN  R2DEFDBL "
  69. 690  LOCATE RO+16,CO+ 9:PRINT "       CALL           CALL       "
  70. 700  LOCATE RO+17,CO+ 9:PRINT "  SOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUND  "
  71. 710  LOCATE RO+18,CO+ 9:PRINT "                           "
  72. 720  COLOR 15,2
  73. 730  LOCATE RO+19,CO+ 9:PRINT " NETWORK #3, where R1 > R2 "
  74. 740  COLOR 7,0
  75. 750  RETURN
  76. 760  '
  77. 770  COLOR 0,7
  78. 780  LOCATE RO+11,CO+45:PRINT "                           "
  79. 790  LOCATE RO+12,CO+45:PRINT "             C1            "
  80. 800  LOCATE RO+13,CO+45:PRINT "  SOUNDSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDUSINGSOUNDSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUND  "
  81. 810  LOCATE RO+14,CO+45:PRINT "       CALL           CALL       "
  82. 820  LOCATE RO+15,CO+45:PRINT " DEFSNGR1  THENINSTRTHEN C2   L1 OROROR  R2DEFDBL "
  83. 830  LOCATE RO+16,CO+45:PRINT "       CALL           CALL       "
  84. 840  LOCATE RO+17,CO+45:PRINT "  SOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMOTORSOUNDSOUNDSOUNDSOUNDSOUND  "
  85. 850  LOCATE RO+18,CO+45:PRINT "                           "
  86. 860  COLOR 15,2
  87. 870  LOCATE RO+19,CO+45:PRINT " NETWORK #4, where R1 < R2 "
  88. 880  COLOR 7,0
  89. 890  RETURN
  90. 900  '
  91. 910  '.....display input
  92. 920  LOCATE CSRLIN-1:PRINT "        ";:LOCATE CSRLIN,43
  93. 930  IF Z=QL THEN PRINT USING U2$;Z:GOTO 950
  94. 940  PRINT USING U1$;Z
  95. 950  RETURN
  96. 960  '
  97. 970  '.....input menu
  98. 980  RO=2:CO=0
  99. 990  FOR Z=1 TO 4:ON Z GOSUB 350,490,630,770:NEXT Z    'draw 4 diagrams
  100. 1000  PRINT UL$;
  101. 1010  COLOR 0,7:LOCATE CSRLIN,22
  102. 1020  PRINT " Press 1 to continue or 0 to EXIT....."
  103. 1030  COLOR 7,0
  104. 1040  Z$=INKEY$:IF Z$=""THEN 1040
  105. 1050  IF Z$="0"THEN CLS:RUN EX$
  106. 1060  IF Z$="1"THEN 1080
  107. 1070  GOTO 1040
  108. 1080  LOCATE CSRLIN-1:PRINT STRING$(80,32);:LOCATE CSRLIN-1
  109. 1090  COLOR 15,2
  110. 1100  PRINT " Press one of the four network numbers to start program......"
  111. 1110  COLOR 7,0
  112. 1120  N$=INKEY$
  113. 1130  IF N$="1" THEN GOSUB 1180:RO=2:CO=19:GOSUB 350:GOTO 1290
  114. 1140  IF N$="2" THEN GOSUB 1180:RO=2:CO=-17:GOSUB 490:GOTO 1290
  115. 1150  IF N$="3" THEN GOSUB 1180:RO=-8:CO=19:GOSUB 630:GOTO 1290
  116. 1160  IF N$="4" THEN GOSUB 1180:RO=-8:CO=-17:GOSUB 770:GOTO 1290
  117. 1170  GOTO 1120
  118. 1180  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
  119. 1190  PRINT " The source resistance"
  120. 1200  PRINT " can be either R1 or R2"
  121. 1210  IF N$<>"3"THEN 1270
  122. 1220  PRINT
  123. 1230  PRINT " This is the familiar"
  124. 1240  PRINT " Pi-Network tank circuit"
  125. 1250  PRINT " where C1 and C2 are the"
  126. 1260  PRINT " Tune and Load controls."
  127. 1270  RETURN
  128. 1280  '
  129. 1290  '.....input & print
  130. 1300  PRINT UL$;
  131. 1310  INPUT " ENTER: Impedance R1 (ohms)............R1=   ";R1
  132. 1320  Z=R1:GOSUB 910
  133. 1330  INPUT " ENTER: Impedance R2 (ohms)............R2=   ";R2
  134. 1340  Z=R2:GOSUB 910
  135. 1350  INPUT " ENTER: Frequency (MHz).................F=   ";F
  136. 1360  Z=F:GOSUB 910
  137. 1370  GOSUB 1540:GOTO 1390
  138. 1380  '
  139. 1390  IF N=0 THEN 1410
  140. 1400  PRINT "        N Factor........................N=";USING U1$;N
  141. 1410  PRINT "        Reactance of L1 (ohms)........XL1=";USING U1$;XL1;
  142. 1420  L1=XL1/(2*PI*F):PRINT TAB(57)"L1=";USING U3$;L1;:PRINT " >H"
  143. 1430  PRINT "        Reactance of C1 (ohms)........XC1=";USING U1$;XC1;
  144. 1440  C1=10^6/(2*PI*F*XC1):PRINT TAB(57)"C1=";USING U2$;C1;:PRINT " pF"
  145. 1450  IF XC2=0 THEN 1480
  146. 1460  PRINT "        Reactance of C2 (ohms)........XC2=";USING U1$;XC2;
  147. 1470  C2=10^6/(2*PI*F*XC2):PRINT TAB(57)"C2=";USING U2$;C2;:PRINT " pF";
  148. 1480  PRINT UL$;
  149. 1490  PRINT TAB(5);"SEE THE 1994 ARRL HANDBOOK page 2-55 FOR A DETAILED ";
  150. 1500  PRINT "CIRCUIT DESCRIPTION"
  151. 1510  PRINT UL$;
  152. 1520  GOTO 2150
  153. 1530  '
  154. 1540  '.....calculate
  155. 1550  IF N$<>"1"THEN 1670
  156. 1560  '
  157. 1570  '.....network #1
  158. 1580  IF R1>R2 THEN 1610
  159. 1590  BEEP:COLOR 15,4:LOCATE CSRLIN,14
  160. 1600  PRINT " R1 MUST BE GREATER THAN R2 !":COLOR 7,0:ERROR 200
  161. 1610  XL1=SQR(R1*R2-R2^2)
  162. 1620  L1=XL1/(2*PI*F)
  163. 1630  XC1=R1*R2/XL1
  164. 1640  C1=1/(2*PI*F*XC1)
  165. 1650  RETURN
  166. 1660  '
  167. 1670  IF N$<>"2"THEN 1790
  168. 1680  '
  169. 1690  '.....network #2
  170. 1700  IF R1<R2 THEN 1730
  171. 1710  BEEP:COLOR 15,4:LOCATE CSRLIN,14
  172. 1720  PRINT " R1 MUST BE LESS THAN R2 !":COLOR 7,0:ERROR 200
  173. 1730  XL1=R2*SQR(R1/(R2-R1))
  174. 1740  L1=XL1/(2*PI*F)
  175. 1750  XC1=R1*R2/XL1
  176. 1760  C1=1/(2*PI*F*XC1)
  177. 1770  RETURN
  178. 1780  '
  179. 1790  IF N$<>"3"THEN 1910
  180. 1800  '
  181. 1810  '.....network #3
  182. 1820  IF R1>R2 THEN 1850
  183. 1830  BEEP:COLOR 15,4:LOCATE CSRLIN,14
  184. 1840  PRINT " R1 MUST BE GREATER THAN R2 !":COLOR 7,0:ERROR 200
  185. 1850  MN=SQR(R1/R2-1):GOSUB 2010
  186. 1860  XC1=R1/N
  187. 1870  XC2=R2/SQR(R2/R1*(1+N^2)-1)
  188. 1880  XL1=R1*(N+(R2/XC2))/(N^2+1)
  189. 1890  RETURN
  190. 1900  '
  191. 1910  '.....network #4
  192. 1920  IF R1<R2 THEN 1950
  193. 1930  BEEP:COLOR 15,4:LOCATE CSRLIN,14
  194. 1940  PRINT " R1 MUST BE LESS THAN R2 !":COLOR 7,0:ERROR 200
  195. 1950  MN=SQR(R2/R1-1):GOSUB 2010
  196. 1960  XL1=R2/N
  197. 1970  XC2=R1/SQR(R1*(N^2+1)/R2-1)
  198. 1980  XC1=R2*N/(N^2+1)*(1-R1/(N*XC2))
  199. 1990  RETURN
  200. 2000  '
  201. 2010  '.....N factor
  202. 2020  PRINT "        Minimum N factor..................";USING U1$;MN
  203. 2030  T=6
  204. 2040  PRINT TAB(T);
  205. 2050  PRINT "An N factor in the range of from a few percent above the minimum"
  206. 2060  PRINT TAB(T);
  207. 2070  PRINT "shown to about 15 is suggested. Values in the low end of the range"
  208. 2080  PRINT TAB(T);
  209. 2090  PRINT "are preferred. Higher values of N may result in unnecessarily large"
  210. 2100  PRINT TAB(T);"capacitors."
  211. 2110  INPUT " ENTER: N Factor..........................";N
  212. 2120  VIEW PRINT 16 TO 24:CLS:VIEW PRINT:LOCATE 16
  213. 2130  RETURN
  214. 2140  '
  215. 2150  '.....end
  216. 2160  GOSUB 2200
  217. 2170  GOTO 120   "start
  218. 2180  END
  219. 2190  '
  220. 2200  'HARDCOPY
  221. 2210  GOSUB 2320:LOCATE 25,2:COLOR 14,6
  222. 2220  PRINT " Press 1 to print screen, 2 to print screen & ";
  223. 2230  PRINT "advance paper, or 3 to continue.";:COLOR 7,0
  224. 2240  Z$=INKEY$:IF Z$="3"THEN GOSUB 2320:RETURN
  225. 2250  IF Z$="1"OR Z$="2"THEN GOSUB 2320:GOTO 2270
  226. 2260  GOTO 2240
  227. 2270  FOR QX=1 TO 24:FOR QY=1 TO 80
  228. 2280  LPRINT CHR$(SCREEN(QX,QY));
  229. 2290  NEXT QY:NEXT QX
  230. 2300  IF Z$="2"THEN LPRINT CHR$(12)
  231. 2310  GOTO 2210
  232. 2320  LOCATE 25,1:PRINT STRING$(80,32);:RETURN
  233.